'''

要求1: 创建名为“heima”的数据库，在该数据库中创建包含名为“users”的表；

要求2: users表包含id、name、age、sex、phone_num字段，其中id为主键，name为姓名(name不允许为空不允许重复),age为年龄,sex为性别(只能是“男”或“女”)、phone_num为电话号码(11位);

要求3: 代码运行起来后, 控制台显示主页面如下：

要求4: 输入1进入添加模块，依次提示用户输入用户名、年龄、性别、电话号码，若全部输入正确，将该用户名和密码信息存入数据库，提示“添加成功”并返回主页面；若数据库中已存在该用户名，提示“该用户名已存在, 请重新添加!”

要求5: 输入2进入查询模块，提示用户输入要查询的用户名，输入正确，返回该用户的信息；若用户名输入错误，提示“用户名错误, 请重新输入!”

答案提交方式：创建数据库和表的sql语句以注释的形式写在所有代码之前，只提交一份代码文件。
'''

# create database heima charset="utf8"
# create table users(id int unsigned primary key auto_increment,
#                   name varchar(12) not null unique,
#                   age tinyint unsigned,
#                   sex  enum("男","女"),
#                   phone_num  int );
import pymysql


class HeiMa(object):
    def __init__(self):
        self.conn = pymysql.connect(host = "192.168.199.132", port = 3306, user = "root", password = "mysql", db = "heima", charset = "utf8")

    def __del__(self):
        self.conn.close()

    def insert_info(self):
        '''添加用户信息'''
        cur = self.conn.cursor()
        while True:
            user_list = [0]
            user_name = input("请输入你的姓名：")
            cur.execute("select name from users")
            if user_name in cur.fetchall():
                print("该用户名已存在，请重新添加")
            else:
                user_list.append(user_name)
            user_age = input("请输入你的年龄:")
            # try:
            #     user_age_int = int(user_age)
            #     if user_age_int > 0 and user_age_int < 150:
            #         user_list.append(user_age_int)
            #     else:
            #         print("你输入你的年龄不和规范")
            # except:
            #     print("你输入你的年龄不和规范,应为大于0的整数")
            # user_sex = input("请输入你的性别：")
            # if user_sex != "男" and user_sex != "女":
            #     print("请输入正确格式：男或者女")
            # else:
            #     user_list.append(user_sex)
            # user_phone = input("请输入你的电话号码：")
            #
            # if len(user_phone) == 11 and user_phone.isdigit():
            #     user_list.append(user_list)
            # else:
            #     print("格式不对，请重新输入。")
            # cur.execute("insert into users values (%s)",user_list)
            # cur.close()
            # break

    def get_info(self):
        '''查询用户信息'''
        cur = self.conn.cursor()
        name = input("请输入你要查询的用户名：")

        cur.execute("select name from users")
        print(cur.fetchall())
        if name not in cur.fetchall():
            print("用户名错误, 请重新输入!")
        else:
            cur.execute("select * from users where name = %s",[name])
            print(cur.fetchall())


    def show_info(self):
        print("1.添加学生")
        print("2.查询学生")
        print("3.退出程序")

    def main(self):
        while True:
            self.show_info()
            oper = input("请输入你要执行的操作：")
            if oper == "1":
                self.insert_info()
            elif oper == "2":
                self.get_info()
            elif oper == "3":
                print("欢迎下次使用.")
                break
            else:
                print("你输入的是无效操作，请输入操作编号.")
                continue

if __name__ == '__main__':
    heima = HeiMa()
    heima.main()